#include <iostream>
#include <memory>
#include "../include/Parser.h"
#include "../include/ASTNode.h"
#include "Module.h"
#include "IRbuilder.h"
#include "IRprinter.h"

using namespace std;

int main() {
    // 创建解析器
    Parser parser;
    
    // 解析输入文件
    string input_file = "../../irgenerator/test/test.txt";
    auto ast = parser.parse_file(input_file);
    
    if (!ast) {
        cerr << "Error: Failed to parse " << input_file << endl;
        return -1;
    }
    
    // 创建模块
    Module* module = new Module("main_module");
    
    // 创建IRBuilder，先不指定基本块
    IRBuilder builder(nullptr, module);
    
    // 生成IR
    ast->generate_ir(&builder);
    
    // 输出生成的IR
    cout << module->print() << endl;
    
    // 清理内存
    delete module;
    
    return 0;
}